package me.luger.core.dao.nutz.service;

import me.luger.core.dao.nutz.dao.CurdDao;
import me.luger.core.dao.nutz.entity.easyui.datagrid.DataGridRequest;
import me.luger.core.dao.nutz.entity.easyui.datagrid.DataGridResult;
import me.luger.core.dao.nutz.entity.page.DataTableRequest;
import me.luger.core.dao.nutz.entity.page.DataTableResult;
import me.luger.core.dao.nutz.entity.page.Pagination;
import org.nutz.dao.Cnd;

import java.io.Serializable;
import java.util.List;

/**
 * Created by a on 2017/6/3.
 */
public abstract class CurdService<M, ID extends Serializable> {

    public abstract M insert(M m);

    public abstract int delete(ID... ids);

    public abstract int update(M m);

    public abstract int updateIgnoreNull(M m);

    public abstract M getById(ID id);

    public abstract List<M> listAll();

    public abstract Pagination<M> listPage(int pageNumber, int pageSize);

    public abstract DataTableResult<M> data(DataTableRequest dataTableRequest);

    public abstract DataGridResult<M> data(DataGridRequest dataGridRequest);


//    CurdDao curdDao;
//
//    /*********************************增********************************************/
//    public M insert(M m){
//        return (M) curdDao.insert(m);
//    }
//
//    public M fastInsert(M m){
//        return (M) curdDao.fastInsert(m);
//    }
//
//    /*********************************删********************************************/
//    /**
//     * 批量删除
//     *
//     * @param ids
//     */
//    public void delete(ID... ids){
//        curdDao.delete(ids);
//    }
//
//    /**
//     * 全表删除
//     *
//     * @return 删除的条数
//     */
//    public int deleteAll(){
//        return curdDao.deleteAll();
//    }
//
//    /*********************************改********************************************/
//    public int update(Object obj){
//       return curdDao.update(obj);
//    }
//
//    /**
//     * 忽略值为null的字段
//     *
//     * @param t
//     * @return
//     */
//    public int updateIgnoreNull(Object obj){
//        return updateIgnoreNull(obj);
//    }
//
//    /*********************************查********************************************/
//    public M getById(ID id){
//        return (M) curdDao.getById(id);
//    }
//
//    public List<M> listAll(){
//        return curdDao.listAll();
//    }
//
//    public DataTableResult<M> data(DataTableRequest dataTableRequest){
//        return curdDao.data(dataTableRequest);
//    }
//
//    DataTableResult<M> data(DataTableRequest dataTableRequest, Cnd cnd){
//        return curdDao.data(dataTableRequest,cnd);
//    }
}
